In the past, environments having networked equipment were typically limited to commercial and industrial sites. Such equipment was typically complex and highly sophisticated computer controlled machines that utilized networks to coordinate manufacturing activities. Unlike the commercial and industrial setting, the typical consumer setting included devices and appliances that were fairly unsophisticated and that were operated by a user on a one-to-one basis. To achieve a specific function on the consumer device, the user had to physically interact with the device. For example, to turn on a coffee machine, the user had to press the ON button. Similarly, to change a channel on a TV, the user had to physically turn a knob on the TV set.
Early advances in consumer devices and appliances were limited to remote control devices that, at first, were wired to the device, and eventually used infrared (IR) communications to transmit commands. The remote control devices, however, still forced the user to interact with their respective devices on a one-to-one basis. In addition, most hand-held remote control devices were proprietary, which required separate remote controllers for each consumer product. Further advancements included universal remote controllers that were capable of being programmed to control many consumer devices. Universal remote control devices were limited in that they were typically not able to control devices other than entertainment equipment.
Lately, consumer appliances have become more sophisticated because of the decreased size and costs of computer-related components such as microprocessors. These new consumer devices include the so-called “smart” devices that, like the sophisticated commercial and industrial machinery, are capable of executing predefined tasks and capable of communicating over network infrastructures. An example of a system of smart devices is CEBus®, which may utilize household powerlines to transport messages between compliant CEBus® household devices. CEBus® is implemented per EIA IS-60 for home automation. The CEBus® system utilized controller and receptacle units to communicate and control CEBus® compliant devices. The receptacle units are connected to a standard household receptacles and the command and control information is communicated over the powerlines.
A further example of a system that is intended to network devices is Jini™, which is based on Java™. Jini™ uses Java Remote Method Invocation protocols to move code around a network of devices. Network services run on top of the Jini™ software architecture such that devices and applications may register with the network via a lookup service. Each device must register with the lookup service for other devices to discover them. Thus, each device is not aware of other devices on the network without first pointing to the lookup service.
The above systems are limiting, however, because they all require the user interface to constantly poll the devices it is controlling to identify the status of the device. The communication link between the devices and the user interfaces, for interacting with and controlling the devices, is often slow, thereby exacerbating the problem. For the management system to work adequately, it must have each user interface accurately reflecting the status of each of the devices being controlled. Consider for example, a first user interface changing the light setting of a light in the master bedroom. A second user interface will not know that the light in the master bedroom has changed settings unless it actually polls the master bedroom light for its status. Accordingly, it is desirable that each user interface be updated as to the current state of each device being controlled as well as any changes that are made to the settings of each device. The user interface must then accurately display a single point of state of each of the devices being controlled. To accurately display device settings on the user interfaces, however, the communications between the devices and the user interfaces becomes impractically slow and inefficient when the communications link is a slower network infrastructure or when there are a large number of devices being controlled. For example, consider an Internet-enabled user interface that communicates with devices through a web server, or even clients that have low CPU power, such as a handheld device or a cell phone. Having to poll for individual properties of multiple devices via this slower network therefore becomes a time consuming process. Further, with each user interface requiring updated status information for each device, the communications traffic becomes relatively high.
Another limitation with the above prior art systems is that the user interfaces do not provide any meaningful organization of the devices being controlled. Accordingly, it becomes difficult for the user to control desired devices in any meaningful way, for example, by room.
Yet another limitation is that many user interfaces such as handheld computing devices or cell phones lack the necessary interface with the devices and therefore are not enabled to communicate directly with the devices. For example, many software controllable devices utilize a Component Object Model (COM) or a Distributed Component Object Model (DCOM) interface. Many user interfaces are not COM- or DCOM-enabled.
In view of the above, there is a need for a system that efficiently provides to user interfaces setting information of the devices being controlled. There is also a need to aggregate devices in the home, including their properties, and to categorize them by location and type. There is also a need to allow UI clients to request specific information to keep traffic between all the devices and the UI clients to a minimum. The present invention provides a solution to address these and other limitations and shortcomings of the prior art.